For application such as moving image streaming, when more than a tolerable number of packets are lost at an application level, error correction codes are used to secure quality. For example, Patent Literature 1 discloses a method of creating redundant packets for a plurality of information packets using a Reed-Solomon code and transmitting the information packets with the redundant packets attached thereto. By so doing, even when packets are lost, the erased packets can be decoded as long as the loss is within the range of error correction capability of the Reed-Solomon code.
However, when a number of packets beyond the correction capability of the Reed-Solomon code are lost, or packets are continuously lost due to fading or the like in a wireless communication channel over a relatively long period of time and burst erasure occurs, erasure correction may not be effectively performed. When the Reed-Solomon code is used, although the correction capability can be improved by increasing the block length of the Reed-Solomon code, there is a problem that the amount of computation of coding/decoding processing and the circuit scale will increase.
To solve such a problem, low-density parity check (LDPC) codes are becoming a focus of attention as an error correction code for packet erasure. LDPC codes are codes defined in a very sparse check matrix and can perform coding/decoding processing with a practical time/operation cost even when the code length is on the order of several thousands to several tens of thousands.
FIG. 1 illustrates a conceptual diagram of a communication system using erasure correction encoding by an LDPC code (see Non-Patent Literature 1). In FIG. 1, a communication apparatus 1011 on an encoding side performs LDPC encoding on information packets 1001 (“1” to “4”) to transmit and generates parity packets 1002 (“a” and “b”). A processing section of upper layer 1012 outputs an encoded packet with a parity packet 1002 added to an information packet 1001 to a lower layer 1013 (physical layer (PHY) in the example in FIG. 1) and a physical layer processing section in the lower layer 1013 converts the encoded packet into a format in which the packet is transmittable through a communication channel 1031 and outputs the packet to the communication channel 1031. FIG. 1 shows an example where the communication channel 1031 is a wireless communication channel.
A communication apparatus 1021 on a decoding side performs reception processing by a physical layer processing section of a lower layer 1023. At this time, suppose a bit error has occurred in the lower layer 1023. Due to this bit error, a packet 1003 including the corresponding bit cannot be correctly decoded in the upper layer 1022 and packet erasure may result. The example in FIG. 1 shows a case where information packet 1003 (“3”) is lost. The processing section of upper layer 1022 applies LDPC decoding processing to a received packet sequence and thereby decodes lost information packet 1003 (“3”). For LDPC decoding, sum-product decoding that performs decoding using belief propagation (BP) or a Gaussian elimination method or the like is used.
FIG. 2 is an overall configuration diagram of the above-described communication system. In FIG. 2, the communication system includes communication apparatus 10 on the encoding side, communication channel 20 and communication apparatus 30 on the decoding side. Communication apparatus 10 on the encoding side includes packet generation section 11, erasure correction encoding-related processing section 12, error correcting encoding section 13 and transmitting apparatus 14, and communication apparatus 30 on the decoding side includes receiving apparatus 31, error correcting decoding section 32, erasure correction decoding related processing section 33 and packet decoding section 34. Communication channel 20 represents a channel through which a signal transmitted from transmitting apparatus 14 of communication apparatus 10 on the encoding side passes until the signal is received by receiving apparatus 31 of communication apparatus 30 on the decoding side. For communication channel 20, Ethernet (registered trademark), power line, metal cable, optical fiber, radio, light (visible light, infrared or the like) or a combination thereof can be used. Furthermore, error correcting encoding section 13 introduces error correction codes in the physical layer besides erasure correction codes to correct errors produced in communication channel 20. Therefore, error correcting decoding section 32 decodes error correction codes in the physical layer.
The erasure correction encoding method in erasure correction encoding-related processing section 12 will be described using FIG. 3.
Packet generation section 11 receives information 41 as input, generates information packet 43 and output information packet 43 to rearranging section 15. Hereinafter, a case where information packet 43 is made up of information packets #1 to #n will be described as an example.
Rearranging section 15 receives information packet 43 (here, information packets #1 to #n) as input, reorders the information and outputs reordered information 45.
Erasure correction encoder (parity packet generation section) 16 receives reordered information 45 as input, performs encoding of, for example, an LDPC-BC (low-density parity-check block code, e.g., see Non-Patent Literature 2) or LDPC-CC (low-density parity-check convolutional code, e.g., see Non-Patent Literature 3) on information 45 and generates a parity part. Erasure correction encoder (parity packet generation section) 16 extracts only the parity part generated, generates parity packet 47 from the extracted parity part and outputs the parity packet 47. In this case, when parity packets #1 to #m are generated for information packets #1 to #n, parity packet 47 becomes parity packets #1 to #m.
Error detection code adding section 17 receives information packet 43 (information packets #1 to #n), and parity packet 47 (parity packets #1 to #m) as input, adds an error detection code, for example, a CRC (Cyclic Redundancy Check) check part to information packet 43 (information packets #1 to #n) and parity packet 47 (parity packets #1 to #m) and outputs information packet and parity packet 49 with a CRC check part. Therefore, information packet and parity packet 49 with a CRC check part are made up of information packets #1 to #n and parity packets #1 to #m with a CRC check part.
The erasure correction decoding method by erasure correction decoding related processing section 33 will be described using FIG. 4.
Error detection section 35 receives packet 51 after decoding the error correction code in the physical layer as input and performs error detection using, for example, CRC check. In this case, packet 51 after the error correction code decoding in the physical layer is made up of decoded information packets #1 to #n and decoded parity packets #1 to #m. When erased packets are detected in the decoded information packets and decoded parity packets as a result of the error detection as shown, for example, in FIG. 4, error detection section 35 assigns packet numbers to the information packets and parity packets in which packet erasure has not occurred and outputs those packets as packet 53.
Erasure correction decoder 36 receives packet 53 (information packets (with packet number) and parity packets (with packet number)) in which packet erasure has not occurred) as input, performs erasure correction code decoding and decodes information packet 55 (information packets #1 to #n).